1
การมาตรฐานการประมวลผลพร้อมกันในซีพลัสพลัสสมัยใหม่
AI013Lesson 7
00:00

ก่อนหน้า C++11 มาตรฐานของภาษาซีพลัสพลัสเป็น "ไม่สนใจเธรด," พึ่งพาอินเทอร์เฟซเฉพาะแพลตฟอร์ม เช่น ระบบเธรดแบบ POSIX (Pthreads) หรือ Win32 ซีพลัสพลัสสมัยใหม่ได้เปลี่ยนแปลงภาษาโดยการนำเข้ามาใช้โมเดลหน่วยความจำอย่างเป็นทางการและอินเทอร์เฟซการประมวลผลพร้อมกันที่มาตรฐานไว้แล้ว โมเดลหน่วยความจำ และอินเทอร์เฟซการประมวลผลพร้อมกันที่มาตรฐานไว้

1. การเปลี่ยนแปลงครั้งใหญ่ของซีพลัสพลัส 11

ซีพลัสพลัส 11 ได้เปลี่ยนแปลงภาษาจากเครื่องจักรนามธรรมแบบใช้เธรดเดียวให้กลายเป็นเครื่องจักรที่เข้าใจการทำงานพร้อมกันโดยธรรมชาติผ่าน <thread> หัวข้อ และ std::threadซึ่งทำให้การจัดการหลายเธรดถูกย้ายจากปัญหาที่เกิดจากไลบรารีภายนอกมาสู่ระบบประเภทหลัก

ก่อนซีพลัสพลัส 11 (แยกออกเป็นชิ้นส่วน)PthreadsAPI Win32ซีพลัสพลัสสมัยใหม่ (มาตรฐาน)<thread> <mutex><atomic> <future>

2. การรับประกันข้อผิดพลาด

คำจำกัดความ noexcept จะมีความสำคัญมากในบริบทของการประมวลผลพร้อมกัน มันให้สัญญาว่าฟังก์ชัน (เช่น จุดเริ่มต้นของเธรด) จะไม่ส่งต่อข้อผิดพลาด หากข้อผิดพลาดหลุดออกจาก noexcept ขอบเขต, std::terminate() จะถูกเรียกใช้ทันที ป้องกันไม่ให้สถานะที่ไม่แน่นอนเสียหาย

3. ชนิดข้อมูลที่สม่ำเสมอ

การมาตรฐานรวมถึงชนิดข้อมูลเช่น long long int (นำมาจาก C99) และ std::filesystemเพื่อให้มั่นใจว่าขนาดข้อมูลและการโต้ตอบกับระบบจะคงที่ตลอดไปบนฮาร์ดแวร์ต่างๆ เมื่อมีการแชร์ระหว่างเธรด

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>